﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace KioskosJugandoLimpio.Classes
{
    public class Pregunta
    {
        public int idPreguntas;
        public string pregunta;
        public int numero;
        public Seccion seccion;
        public List<Opcion> Opciones;
        public string ControlDefault;
        public RadioButtonList radios;
        public CheckBoxList checks;
        
        

        public Pregunta(int idPreguntas, string pregunta, int numero, string ControlDefault , Seccion seccion)
        {
            // TODO: Complete member initialization
            this.idPreguntas = idPreguntas;
            this.pregunta = pregunta;
            this.numero = numero;
            this.ControlDefault = ControlDefault;
            this.seccion = seccion;
            DataTable t = SQL.fnDataTable(string.Format("EXEC opcionesPorPregunta {0}" , idPreguntas));
            Opciones = new List<Opcion>();
            foreach (DataRow row in t.Rows) {
                Opciones.Add(new Opcion(int.Parse(row["idOpciones"].ToString()), row["Opcion"].ToString() , this));
            }
            radios = new RadioButtonList();
            radios.ClientIDMode = ClientIDMode.Static;
            radios.ID = this.idPreguntas.ToString();
            radios.RepeatDirection = RepeatDirection.Horizontal;
            checks = new CheckBoxList();
            checks.ClientIDMode = ClientIDMode.Static;
            checks.ID = this.idPreguntas.ToString();
            checks.RepeatDirection = RepeatDirection.Horizontal;
        }

        public Pregunta(int idPreguntas)
        {
            // TODO: Complete member initialization
            this.idPreguntas = idPreguntas;
        }


        public Control control { get {
            Label ctl = new Label();
            ctl.Controls.Add(lblPregunta);
            switch( ControlDefault ){
                case "checkbox":
                    foreach (Opcion opcion in Opciones)
                    {
                        checks.Items.Add(opcion.listItem);
                    }
                    ctl.Controls.Add(checks);
                    break;
                case "radio":
                    foreach (Opcion opcion in Opciones)
                    {
                        radios.Items.Add(opcion.listItem);
                    }
                    ctl.Controls.Add(radios);
                    break;
                case "select":
                    DropDownList drop = new DropDownList();
                    drop.ID = idPreguntas.ToString();
                    drop.ClientIDMode = ClientIDMode.Static;
                    foreach (Opcion opcion in Opciones)
                    {
                        drop.Items.Add(opcion.listItem);
                    }
                    ctl.Controls.Add(drop);
                    break;
                default:
                    foreach (Opcion opcion in Opciones)
                    {
                        ctl.Controls.Add(opcion.control);
                    }
                    break;
            }
            ctl.CssClass = "pregunta";
            if (ControlDefault == "text") {
                ctl.Controls.Add(new TextBox() {ID = this.idPreguntas.ToString(),ClientIDMode = ClientIDMode.Static});
            }
            if (ControlDefault == "rango")
            {
                TextBox t = new TextBox() { ID = this.idPreguntas.ToString(), ClientIDMode = ClientIDMode.Static };
                t.CssClass = "num";
                ctl.Controls.Add(t);
            }
            return ctl;
        }
        }

        public Control lblPregunta { get {
            Label l = new Label();
            l.Text = pregunta;
            l.CssClass = "pregunta";
            return l;
        } }
    }
}
